// template <typename T> class BiLinkNode {
// public:
//   T data;
//   BiLinkNode<T> *next;
//   BiLinkNode<T> *prev;
//   BiLinkNode(const T info, BiLinkNode<T> *preValue, BiLinkNode<T>
//   *nextValue); BiLinkNode(const T info);
// };
// template <typename T>
// BiLinkNode<T>::BiLinkNode(const T info, BiLinkNode<T> *preValue,
//                           BiLinkNode<T> *nextValue)
//     : data(info), prev(preValue), next(nextValue){};
// template <typename T>
// BiLinkNode<T>::BiLinkNode(const T info)
//     : data(info), prev(nullptr), next(nullptr){};
// template <typename T> class BiLinkList {
// public:
//   BiLinkList(const *T d,const int n);
//   ~BiLinkList();
//   bool insertNode(const int postition, const T value);
//   bool traverseBiLinkList();
//   bool isEmpty();
//   int length();
//   bool deleteNode(int position);
//   bool clear();
//   bool getPos(int &pos, const T value);
//   bool getValue(const int index, T &value);
//   bool append(const T value);
// };
// template <typename T> BiLinkList<T>::BiLinkList(const *T d,const int n) {
// 	if(n <= 0)
// 		return nullptr;
// 	else{}
//
// }
